import {
  queryById
} from "../../api/shopCar.js";
Page({

  /**
   * 页面的初始数据
   */
  data: {
    goods: [],
    total:0

  },

  /** 
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    
  },
  // 将 getNum 方法改为异步函数，并返回一个 Promise
async getNum(mykey) {
 
  return new Promise((resolve, reject) => {
    wx.getStorage({
      key: mykey,
      success(res) {
        // 成功之后给res添加新的属性
        const num = parseInt(res.data);
        resolve(num);
      },
      fail(err) {
        // 处理失败情况
        reject(err);
      }
    });
  });
},
  async method(arr) {
    if (arr.length > 0) {
      //用于计算总价格
      let total=0;
      let goodsNum=0;
      // 长度大于0才开始遍历
      const updatedGoods = []; // 创建一个新数组来存储更新后的数据
      for (const el of arr) {
        if (el === 'logs') {
          continue;
        }
        let re = await queryById({
          id: parseInt(el)
        });
        if (re.code === 200) {
          //取出产品数量并且添加产品数量
          let num=await this.getNum(el);
          goodsNum=goodsNum+num;
          re.data.num = num;
          // 将结果添加到新数组中
         total= total+ re.data.num*re.data.priceFee;
          updatedGoods.push(re.data);
        }
      }
      // 使用 this.setData 更新数据
      this.setData({
        goodsNum:goodsNum,
        total:total,
        goods: updatedGoods
      });
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },
  jian(e){
    //传入id
    let a =e.currentTarget.dataset.id;
    //在本地缓存找到该该商品然后数量减1
      //获取值
      wx.getStorage({
        key:a, 
        success:function(res){
          if(res.data==1) return;
          //找到存储的商品让数量加一
          const num =parseInt(res.data)-1;
          //在存储进本地会话中
          wx.setStorage({
            key:a,
            data:num.toString()
          })
        }
      })
    this.onShow();
  },
  jia(e){
    //传入id
    let a =e.currentTarget.dataset.id;
    //在本地缓存找到该该商品然后数量加一
      //获取值
      wx.getStorage({
        key:a,
        success:function(res){
          //找到存储的商品让数量加一
          const num =parseInt(res.data)+1;
          //在存储进本地会话中
          wx.setStorage({
            key:a,
            data:num.toString()
          })
        }
      })
    this.onShow();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    //指名当前对象
    let rs = this;
    let arr =[];
    //加载时获取商品id然后传入到后台
    wx.getStorageInfo({
      success: function name(res) {
         arr = res.keys;
         rs.method(arr);
      }
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})